package cn.source.system.service.impl;

import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.source.system.domain.BaseArea;
import cn.source.system.mapper.BaseAreaMapper;
import cn.source.system.service.IBaseAreaService;

/**
 * 地区Service业务层处理
 *
 * @author ruoyi
 * @date 2023-08-31
 */
@Service
public class BaseAreaServiceImpl implements IBaseAreaService
{
    @Autowired
    private BaseAreaMapper baseAreaMapper;

    /**
     * 查询地区
     *
     * @param id 地区主键
     * @return 地区
     */
    @Override
    public BaseArea selectBaseAreaById(Integer id)
    {
        return baseAreaMapper.selectBaseAreaById(id);
    }

    /**
     * 查询地区列表
     *
     * @param baseArea 地区
     * @return 地区
     */
    @Override
    public List<BaseArea> selectBaseAreaList(BaseArea baseArea)
    {
        return baseAreaMapper.selectBaseAreaList(baseArea);
    }

    /**
     * 新增地区
     *
     * @param baseArea 地区
     * @return 结果
     */
    @Override
    public int insertBaseArea(BaseArea baseArea)
    {
        return baseAreaMapper.insertBaseArea(baseArea);
    }

    /**
     * 修改地区
     *
     * @param baseArea 地区
     * @return 结果
     */
    @Override
    public int updateBaseArea(BaseArea baseArea)
    {
        return baseAreaMapper.updateBaseArea(baseArea);
    }

    /**
     * 批量删除地区
     *
     * @param ids 需要删除的地区主键
     * @return 结果
     */
    @Override
    public int deleteBaseAreaByIds(Integer[] ids)
    {
        return baseAreaMapper.deleteBaseAreaByIds(ids);
    }

    /**
     * 删除地区信息
     *
     * @param id 地区主键
     * @return 结果
     */
    @Override
    public int deleteBaseAreaById(Integer id)
    {
        return baseAreaMapper.deleteBaseAreaById(id);
    }

	@Override
	public List<BaseArea> getCityArea() {

		return baseAreaMapper.getCityArea();
	}

    @Override
    public List<BaseArea> selectChildrenList(BaseArea baseArea) {
        return baseAreaMapper.selectChildrenList(baseArea);
    }
/**
 * 获取城市列表
 */

    @Override
    public List<BaseArea> selectCityList(BaseArea baseArea) {
    	
    	//获取全部城市数据
    	List<BaseArea> allCityList=baseAreaMapper.selectBaseAreaList(null);
    	
    	List<BaseArea> newCityList=new ArrayList();
    	//根据父节点获取城市列表
    	List<BaseArea> cityList=baseAreaMapper.selectCityList(baseArea);
    	if(cityList!=null&&cityList.size()>0) {
    		for(int i=0;i<cityList.size();i++) {
    			BaseArea area=cityList.get(i);
    			
    			newCityList.add(area);
    			
    			for(int j=0;j<allCityList.size();j++) {
    				BaseArea area2=allCityList.get(j);
    				if(area.getId().equals(area2.getParentId())) {
    					newCityList.add(area2);
    				}
    			}
    			
    		}
    	}
        return newCityList;
    }
}
